import avail.*; import java.net.*; import java.util.List; import java.util.Iterator; import org.jdom.*; import org.jdom.input.SAXBuilder; import org.jdom.output.XMLOutputter; /** * Basic JDOM Example * Illustrates how to traverse a JDOM tree * Example usage: * java jdom4 */ public class jdom4 { private int numElements = 0; // Download and Output XML File public void process (String url) throws MalformedURLException { try { // Use SAXBuilder SAXBuilder builder = new SAXBuilder(); Document doc = builder.build(new URL(url)); Element root = doc.getRootElement(); processElement (root); System.out.println ("Total Number of Elements Processed: " +numElements); } catch (JDOMException e) { System.out.println ("JDOM Exception: "+e.getMessage()); } } // Recursive Function to Process Elements // Prints the Element Name and keeps a running count // out total number of elements. private void processElement (Element element) { numElements++; String elementName = element.getName(); System.out.println (elementName); List kids = element.getChildren(); Iterator iterator = kids.iterator(); while (iterator.hasNext()) { Element kid = (Element) iterator.next(); processElement (kid); // Recursive } } public static void main (String[] args) throws Exception { System.out.println ("JDOM3 Example"); jdom3 app = new jdom3(); app.process("http://p.moreover.com/cgi-local/page?"+ "c=Top%20stories&o=xml"); } }